import math
n,k = map(int,input().split())
if k > math.ceil(pow(n,2)/2):
print("NO")
else:
grid = [[0]*n for _ in range(n)]
ct = 0
for i in range(n):
for j in range(n):
if (i+j)%2 == 0 and ct < k:
grid[i][j] = "L"
ct += 1
else:
grid[i][j] = "S"
print("YES")
for i in range(n):
print("".join(grid[i]))
#include<bits/stdc++.h>
//Every problem is a gift without them we would not grow
//A person who never made a mistake never tried anything new
#include <string>
using namespace std;
typedef long long ll;
set<char>sets;
char mat[122][122];
int main()
{
int n,k;
cin>>n>>k;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
mat[i][j]='S';
}
}
for(int i=0;i<n;i++)
{
if(i%2==0)
{
for(int j=0;j<n;j+=2)
if(k>0)
{
mat[i][j]='L';
k--;
}
}
else
{
for(int j=1;j<n;j+=2)
if(k>0)
{
mat[i][j]='L';k--;
}
}
}
if(k>0)
{
cout<<"NO";
}
else
{
cout<<"YES"<<endl;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
cout<<mat[i][j];
cout<<endl;
}
}
return 0;
}
80A - Panoramix's Prediction | 1354B - Ternary String |
122B - Lucky Substring | 266B - Queue at the School |
1490A - Dense Array | 1650B - DIV + MOD |
1549B - Gregor and the Pawn Game | 553A - Kyoya and Colored Balls |
1364A - XXXXX | 1499B - Binary Removals |
1569C - Jury Meeting | 108A - Palindromic Times |
46A - Ball Game | 114A - Cifera |
776A - A Serial Killer | 25B - Phone numbers |
1633C - Kill the Monster | 1611A - Make Even |
1030B - Vasya and Cornfield | 1631A - Min Max Swap |
1296B - Food Buying | 133A - HQ9+ |
1650D - Twist the Permutation | 1209A - Paint the Numbers |
1234A - Equalize Prices Again | 1613A - Long Comparison |
1624B - Make AP | 660B - Seating On Bus |
405A - Gravity Flip | 499B - Lecture |